
/**
 * Die Klasse Lehrveranstaltung ist eine abstrakte Klasse mit den Child-Klassen Uebung- und Vorlesung. Sie enthält alle wesentlichen Informationen zu Lehrveranstaltungen 
 * an der Universtiät in Vawistadt: Name, Teilnehmeranzahl, Typ der Lehrveranstaltung, Dozent, benötigte Ausrüstung. 
 * 
 * @author Lena Schenk
 * @version 14122014
 */
public abstract class Lehrveranstaltung
{

    // 1;"Mathematik 1";"Vorlesung";"Frey";800;"Tafel, Mikrofonanlage";
    
    /**
     *  Name der Lehrveranstaltung
     */
    private String name;
   
   /**
     * Typ der Lehrveranstaltung 
     */
    protected LehrveranstaltungType lehrveranstaltungType;

    /** 
     * Dozent der Lehrveranstaltung
     */
    private Dozent dozent;
    
      /**
     * Anzahl der Teilnehmer
     */
    private int teilnehmer;
     
    /**
     * benötigtes Equipment für die Lehveranstaltung
     */
    private Equipment equipment;

    /**
     * Die Konstruktormethode weißt dem Lehrveranstaltungs-Objekt alle grundlegenden Informationen zu.
     */
    
    public Lehrveranstaltung(String name, LehrveranstaltungType lehrveranstaltungType, Dozent dozent,  int teilnehmer, Equipment equipment) {
        this.name = name;
        this.lehrveranstaltungType = lehrveranstaltungType;
        this.dozent = dozent;
        this.teilnehmer = teilnehmer;
        this.equipment = equipment;
    }
    
    /**
     * @return      Die Methode gibt den Namen der Lehrveranstaltung als String zurück
     */
    public String getName() {
        return name;
    }
    
    /**
     * Die Methode setzt den Namen der Lehrveranstaltung neu 
     * @param name   Neuer Name der Lehrveranstaltung 
     */
    public void setName(String name) {
        this.name = name;
    }
    
    /**
     * @return      Die Methode gibt den Typ der Lehrveranstaltung (Vorlesung oder Übung) zurück
     */
    public LehrveranstaltungType getLehrveranstaltungType() {
        return lehrveranstaltungType;
    }
    
    /**
     * Die Methode setzt den Typ der Lehrveranstaltung neu
     * @param this.lehrveranstaltungsType    Neuer Typ der Lehrveranstaltung
     */
    public void setLehrveranstaltungType(LehrveranstaltungType lehrveranstaltungType) {
        this.lehrveranstaltungType = lehrveranstaltungType;
    }
    
    /**
     * @return    Die Methode gibt den Dozenten als String zurück 
     */
    public Dozent getDozent() {
        return dozent;
    }
    
    /**
     * Die Methode setzt den Dozenten der Lehrveranstaltung neu 
     * @param dozent    Neuer Dozent für die Lehrveranstaltung 
     */
    public void setDozent(Dozent dozent) {
        this.dozent = dozent;
    }

        /**
     * @return      Die Methode gibt die Anzahl der Teilnehmer als ganze Zahl (int) zurück
     */
    public int getTeilnehmer() {
        return teilnehmer;
    }
    
    /**
     * Die Methode setzt die Teilnehmeranzahl neu
     * @param teilnehmer   Neue Anzahl von Teilnehmern 
     */
    public void setTeilnehmer(int teilnehmer) {
        this.teilnehmer = teilnehmer;
    }
    
    /**
     * @return     Diese Methode gibt das für eine Lehrveranstaltung benötigte Equipment zurück 
     */
    public Equipment getEquipment() {
        return equipment;
    }
    
    /**
     * Die Methode setzt das für eine Veranstaltung benötigte Equipment neu 
     * @param equipment      Neues Equipment, das für eine Lehrveranstaltung benötigt wird
     */
    public void setEquipment(Equipment equipment) {
        this.equipment = equipment;
    }

  
    
    
    
    
    
    
    
}
